package com.qimo.zzy.tool.Juhe.Current;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Map;


public class RequestTool {
    public String doGet(String httpUrl,String queryParams){
        HttpURLConnection connection =null;
        InputStream inputStream=null;
        BufferedReader bufferedReader=null;
        String result=null; //返回结果字符串
        try{
            //创建原创url链接对象
            URL url = new URL(new StringBuffer(httpUrl).append("?").append(queryParams).toString());
            //通过远程url链接对象打开一个链接，强转成httpURLConnection类
            connection =(HttpURLConnection) url.openConnection();
            //设置连接方式：get
            connection.setRequestMethod("GET");
            //设置连接主机服务器的超时视角：15000毫秒
            connection.setConnectTimeout(5000);
            //设置读取远程返回的数据时间：60000毫秒
            connection.setReadTimeout(6000);
            //发送请求
            connection.connect();
            //通过connection连接，获取数据流
            if (connection.getResponseCode()==200){
                inputStream=connection.getInputStream();
                //封装输入流，并指定字符集
                bufferedReader=new BufferedReader(new InputStreamReader(inputStream,StandardCharsets.UTF_8));
                //存放数据
                StringBuilder sbf=new StringBuilder();
                String temp;
                while ((temp = bufferedReader.readLine()) != null){
                    sbf.append(temp);
                    sbf.append(System.getProperty("line.separator"));
                }
                result=sbf.toString();
            }
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            //关闭资源
            if (null!=bufferedReader){
                try {
                    bufferedReader.close();
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
            if (null != inputStream){
                try {
                    inputStream.close();
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
            if (connection!=null){
                connection.disconnect();//关闭远程连接
            }
        }
        return result;
    }

    /**
     * 将maD型转为请求参数型
     * @param data
     * @return
     */
    public String urlencode(Map<String,?> data){
        StringBuilder sb=new StringBuilder();
        for (Map.Entry<String,?>i:data.entrySet()){
            try{
                sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
            }catch (UnsupportedEncodingException e){
                e.printStackTrace();
            }
        }
        String result=sb.toString();
        result = result.substring(0,result.lastIndexOf("&"));
        return result;
    }
}
